//package com.iwhalecloud.bss.kite.cucc.web.service.accept.handler.module;
//
//import com.iwhalecloud.bss.kite.client.dto.inst.InstAttrDTO;
//import com.iwhalecloud.bss.kite.client.vo.scene.CommonAttrVO;
//import com.iwhalecloud.bss.kite.client.vo.scene.ModuleVO;
//import com.iwhalecloud.bss.kite.common.constant.KeyConsts;
//import com.iwhalecloud.bss.kite.common.util.KiteBeanUtils;
//import com.iwhalecloud.bss.kite.common.util.KiteListUtils;
//import com.iwhalecloud.bss.kite.common.util.KiteObjectUtils;
//import com.iwhalecloud.bss.kite.common.util.KiteStringUtils;
//import com.iwhalecloud.bss.kite.cucc.client.api.attr.ILocalQueryScenePersonInfoService;
//import com.iwhalecloud.bss.kite.cucc.client.dto.pos.KitePosDTO;
//import com.iwhalecloud.bss.kite.cucc.client.dto.pos.KitePosLinkmanDTO;
//import com.iwhalecloud.bss.kite.cucc.client.vo.scene.ContactInfoVO;
//import com.iwhalecloud.bss.kite.cucc.client.vo.scene.CuccCommonAttrVO;
//import com.iwhalecloud.bss.kite.cucc.client.vo.scene.SceneNewOfferSeneVO;
//import com.iwhalecloud.bss.kite.cucc.common.constant.LocalKeyConsts;
//import com.iwhalecloud.bss.kite.cucc.common.constant.LocalServiceOfferConsts;
//import com.iwhalecloud.bss.kite.cucc.common.util.AssemblyAttrDtoUtils;
//import com.iwhalecloud.bss.kite.cucc.dataservice.cache.ExtOrderInfoCache;
//import com.iwhalecloud.bss.kite.web.service.accept.bo.AcceptContext;
//import com.iwhalecloud.bss.kite.web.service.accept.bo.SceneModule;
//import com.iwhalecloud.bss.kite.web.service.accept.handler.module.AbstractModuleHandler;
//import com.ztesoft.bss.base.staticdata.ServiceOfferConst;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import java.util.ArrayList;
//import java.util.Collections;
//import java.util.List;
//import java.util.Objects;
//
///**
// * <Description> 联系人 <br>
// *
// * @author zixin<br>
// */
//@Service
//public class ContactInfoModuleHandler extends AbstractModuleHandler {
//
//    @Autowired
//    private ILocalQueryScenePersonInfoService queryScenePersonService;
//
//    @Override
//    public List<ModuleVO> execute(AcceptContext context, SceneModule sceneModule) {
//        ContactInfoVO contactInfoVO = new ContactInfoVO();
//        List<InstAttrDTO> attrConfigs = queryScenePersonService
//            .listContractInfoAttrs(context.getAcceptRequest().getSceneInstId()).getResultObject();
//        if (!KiteObjectUtils.isEmpty(context.getAcceptRequest()) && KiteStringUtils
//            .equalsAny(context.getAcceptRequest().getServiceOfferId(), LocalServiceOfferConsts.SERVICE_OFFER_QC)) {
//            contactInfoVO.setIsEdit(LocalKeyConsts.IFTRUE_T);
//        }
//        if (KiteStringUtils.isEqual(context.getAcceptRequest().getSceneTemplateId(), "100")) {
//            // 订单审核则返回所有属性且不可编辑
//            contactInfoVO.setContactAttr(AssemblyAttrDtoUtils.assemblyCommonVO(attrConfigs));
//            contactInfoVO.setIsEdit(KeyConsts.IFTRUE_F);
//        }
//        else {
//            attrConfigs.removeIf(instAttrDTO -> !KiteStringUtils
//                .isEqual(LocalKeyConsts.KITE_ATTR_CONFIG_SHOW_TYPE_D, instAttrDTO.getShowType()));
//            contactInfoVO.setContactAttr(AssemblyAttrDtoUtils.assemblyVO(attrConfigs));
//        }
//        SceneNewOfferSeneVO sceneAccountInfoVo = (SceneNewOfferSeneVO) context.getSceneVo();
//        sceneAccountInfoVo.setContactInfo(contactInfoVO);
//        return Collections.singletonList(contactInfoVO);
//    }
//
//    @Override
//    public List<ModuleVO> previewSceneVo(AcceptContext context, SceneModule sceneModule) {
//        List<InstAttrDTO> attrConfigs = queryScenePersonService
//            .listContractInfoAttrs(context.getAcceptRequest().getSceneInstId()).getResultObject();
//
//        ContactInfoVO contactInfoVO = new ContactInfoVO();
//        contactInfoVO.setContactAttr(AssemblyAttrDtoUtils.assemblyCommonVO(attrConfigs));
//        if (!KiteObjectUtils.isEmpty(context.getAcceptRequest()) && !KiteStringUtils
//            .equalsAny(context.getAcceptRequest().getServiceOfferId(), LocalServiceOfferConsts.SERVICE_OFFER_QC)) {
//            contactInfoVO.setIsEdit(LocalKeyConsts.IFTRUE_F);
//        }
//        SceneNewOfferSeneVO sceneAccountInfoVo = (SceneNewOfferSeneVO) context.getSceneVo();
//        List<CommonAttrVO> cuccAttrList;
//        List<CommonAttrVO> transferDisplayInfoAttrs = contactInfoVO.getContactAttr();
//        if (KiteListUtils.isNotEmpty(transferDisplayInfoAttrs)) {
//            //设置预览模式
//            transferDisplayInfoAttrs.forEach((attr) -> {
//                attr.setAttrValueTypeId("TT");
//            });
//            if (!KiteStringUtils
//                .isEqual(context.getAcceptRequest().getServiceOfferId(), ServiceOfferConst.service_offer_1)) {
//                cuccAttrList = this
//                    .getCuccCommonAttrVOList(transferDisplayInfoAttrs, context.getAcceptRequest().getSceneInstId());
//                transferDisplayInfoAttrs = cuccAttrList;
//            }
//        }
//        contactInfoVO.setContactAttr(transferDisplayInfoAttrs);
//        sceneAccountInfoVo.setContactInfo(contactInfoVO);
//        return Collections.singletonList(contactInfoVO);
//    }
//
//    private List<CommonAttrVO> getCuccCommonAttrVOList(List<CommonAttrVO> transferDisplayInfoAttrs,
//        String sceneInstId) {
//        List<CommonAttrVO> cuccAttrList = new ArrayList<>();
//        transferDisplayInfoAttrs.forEach(commonAttrVO -> {
//            CuccCommonAttrVO cuccCommonAttrVO = new CuccCommonAttrVO();
//            // 处理联系人变更的信息
//            this.dealDevPersonOldValues(cuccCommonAttrVO, commonAttrVO, sceneInstId);
//            cuccAttrList.add(cuccCommonAttrVO);
//        });
//        return cuccAttrList;
//    }
//
//    private void dealDevPersonOldValues(CuccCommonAttrVO cuccCommonAttrVO, CommonAttrVO commonAttrVO,
//        String sceneInstId) {
//        KiteBeanUtils.copyProperties(commonAttrVO, cuccCommonAttrVO);
//        KitePosDTO kitePosDTO = ExtOrderInfoCache.get(sceneInstId);
//        if (Objects.nonNull(kitePosDTO)) {
//            KitePosLinkmanDTO cuccPosLinkman = kitePosDTO.getLinkman();
//            if ("devperson_info_channelname".equals(commonAttrVO.getFieldName()) && !KiteStringUtils
//                .isEqual(cuccCommonAttrVO.getValue(), cuccPosLinkman.getName())) {
//                cuccCommonAttrVO.setOldValue(cuccPosLinkman.getName());
//                cuccCommonAttrVO.setChangeFlag(true);
//                return;
//            }
//            else if ("contact_info_tel".equals(commonAttrVO.getFieldName()) && !KiteStringUtils
//                .isEqual(cuccCommonAttrVO.getValue(), cuccPosLinkman.getPhone())) {
//                cuccCommonAttrVO.setOldValue(cuccPosLinkman.getPhone());
//                cuccCommonAttrVO.setChangeFlag(true);
//                return;
//            }
//            else if ("contact_info_email".equals(commonAttrVO.getFieldName()) && !KiteStringUtils
//                .isEqual(cuccCommonAttrVO.getValue(), cuccPosLinkman.getEmail())) {
//                cuccCommonAttrVO.setOldValue(cuccPosLinkman.getEmail());
//                cuccCommonAttrVO.setChangeFlag(true);
//                return;
//            }
//            else if ("contact_info_address".equals(commonAttrVO.getFieldName()) && !KiteStringUtils
//                .isEqual(cuccCommonAttrVO.getValue(), cuccPosLinkman.getAddress())) {
//                cuccCommonAttrVO.setOldValue(cuccPosLinkman.getAddress());
//                cuccCommonAttrVO.setChangeFlag(true);
//                return;
//            }
//            else if ("contact_info_cardtype".equals(commonAttrVO.getFieldName()) && !KiteStringUtils
//                .isEqual(cuccCommonAttrVO.getValue(), cuccPosLinkman.getPersonIdType())) {
//                cuccCommonAttrVO.setOldValue(cuccPosLinkman.getPersonIdType());
//                cuccCommonAttrVO.setChangeFlag(true);
//                return;
//            }
//            else if ("contact_info_cardnum".equals(commonAttrVO.getFieldName()) && !KiteStringUtils
//                .isEqual(cuccCommonAttrVO.getValue(), cuccPosLinkman.getPersonNum())) {
//                cuccCommonAttrVO.setOldValue(cuccPosLinkman.getPersonNum());
//                cuccCommonAttrVO.setChangeFlag(true);
//                return;
//            }
//            else if ("contact_info_fixedphone".equals(commonAttrVO.getFieldName()) && !KiteStringUtils
//                .isEqual(cuccCommonAttrVO.getValue(), cuccPosLinkman.getFixedPhone())) {
//                cuccCommonAttrVO.setOldValue(cuccPosLinkman.getFixedPhone());
//                cuccCommonAttrVO.setChangeFlag(true);
//                return;
//            }
//            else if ("contact_info_faxnum".equals(commonAttrVO.getFieldName()) && !KiteStringUtils
//                .isEqual(cuccCommonAttrVO.getValue(), cuccPosLinkman.getFax())) {
//                cuccCommonAttrVO.setOldValue(cuccPosLinkman.getFax());
//                cuccCommonAttrVO.setChangeFlag(true);
//                return;
//            }
//            else if ("contact_info_postcode".equals(commonAttrVO.getFieldName()) && !KiteStringUtils
//                .isEqual(cuccCommonAttrVO.getValue(), cuccPosLinkman.getPostcode())) {
//                cuccCommonAttrVO.setOldValue(cuccPosLinkman.getPostcode());
//                cuccCommonAttrVO.setChangeFlag(true);
//                return;
//            }
//            else if ("contact_info_comments".equals(commonAttrVO.getFieldName()) && !KiteStringUtils
//                .isEqual(cuccCommonAttrVO.getValue(), cuccPosLinkman.getRemark())) {
//                cuccCommonAttrVO.setOldValue(cuccPosLinkman.getRemark());
//                cuccCommonAttrVO.setChangeFlag(true);
//                return;
//            }
//        }
//    }
//
//}
